var obj ={
    //es6 对象字面量的简写方式
    hi(){
        // this 对象的方法调用obj
        console.log(this,'---');
        // 返回值是函数 高阶函数
        // 是箭头函数 
        return() =>{
            console.log(this,'===');
        }
    },
    sayHi(){
        //console.log(this)
        return function(){
            console.log(this);
            return()=>{
                console.log(this);
            }
        }
    },
    say:()=>{
        console.log(this);
    }
}
 
// const func = obj.hi; //赋值 func普通函数
// //func();   // 调用方式是普通函数 -> 全局
// 返回箭头函数时 this -> window 
// const innerFunc = func(); //
// innerFunc();
// 返回箭头函数时 this -> obj
// obj.hi()()
let sayHi =obj.sayHi();
let fun1 =sayHi();
fun1();
let fun2 = sayHi.bind(obj)();
fun2();